package sv.gob.mh.dgii.model;

// Generated Jun 4, 2008 1:49:27 PM by Hibernate Tools 3.2.0.CR1
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import org.hibernate.validator.constraints.NotEmpty;

/**
 * CgGrupoTrab generated by hbm2java
 */
@Entity
@Table(name = "CG_GRUPO_TRAB", schema = "UPET")
public class CgGrupoTrab implements java.io.Serializable {

    /**
     *
     */
    private static final long serialVersionUID = 6724967842653621747L;
    private String cgrupo;
    private TbUnidad tbUnidad;
    private CgTecnico cgTecnico;
    private CgCoordinacion cgCoordinacion;
    private String dgrupoTrab;
    private String cusuario;
    private Date fhingreso;
    private Date fhmodificacion;
    private Integer bactivo;
    private Set<CgTecnico> cgTecnicos = new HashSet<CgTecnico>(0);

    public CgGrupoTrab() {
    }

    public CgGrupoTrab(String cgrupo, TbUnidad tbUnidad, CgTecnico cgTecnico,
            CgCoordinacion cgCoordinacion, String dgrupoTrab, String cusuario,
            Date fhingreso, Date fhmodificacion) {
        this.cgrupo = cgrupo;
        this.tbUnidad = tbUnidad;
        this.cgTecnico = cgTecnico;
        this.cgCoordinacion = cgCoordinacion;
        this.dgrupoTrab = dgrupoTrab;
        this.cusuario = cusuario;
        this.fhingreso = fhingreso;
        this.fhmodificacion = fhmodificacion;
    }

    public CgGrupoTrab(String cgrupo, TbUnidad tbUnidad, CgTecnico cgTecnico,
            CgCoordinacion cgCoordinacion, String dgrupoTrab, String cusuario,
            Date fhingreso, Date fhmodificacion, Integer bactivo, Set<CgTecnico> cgTecnicos) {
        this.cgrupo = cgrupo;
        this.tbUnidad = tbUnidad;
        this.cgTecnico = cgTecnico;
        this.cgCoordinacion = cgCoordinacion;
        this.dgrupoTrab = dgrupoTrab;
        this.cusuario = cusuario;
        this.fhingreso = fhingreso;
        this.fhmodificacion = fhmodificacion;
        this.bactivo = bactivo;
        this.cgTecnicos = cgTecnicos;
    }

    @Id
    @Column(name = "C_GRUPO", unique = true, nullable = false, length = 3)
    public String getCgrupo() {
        return this.cgrupo;
    }

    public void setCgrupo(String cgrupo) {
        this.cgrupo = cgrupo;
    }

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "C_UNIDAD", nullable = false)
    @NotNull
    public TbUnidad getTbUnidad() {
        return this.tbUnidad;
    }

    public void setTbUnidad(TbUnidad tbUnidad) {
        this.tbUnidad = tbUnidad;
    }

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "NIT_SUPERVISOR", nullable = false)
    @NotNull
    public CgTecnico getCgTecnico() {
        return this.cgTecnico;
    }

    public void setCgTecnico(CgTecnico cgTecnico) {
        this.cgTecnico = cgTecnico;
    }

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "C_COORDINACION", nullable = false)
    @NotNull
    public CgCoordinacion getCgCoordinacion() {
        return this.cgCoordinacion;
    }

    public void setCgCoordinacion(CgCoordinacion cgCoordinacion) {
        this.cgCoordinacion = cgCoordinacion;
    }

    @Column(name = "D_GRUPO_TRAB", nullable = false, length = 50)
    @NotEmpty
    public String getDgrupoTrab() {
        return this.dgrupoTrab;
    }

    public void setDgrupoTrab(String dgrupoTrab) {
        this.dgrupoTrab = dgrupoTrab;
    }

    @Column(name = "C_USUARIO", nullable = false, length = 30)
    @NotEmpty
    public String getCusuario() {
        return this.cusuario;
    }

    public void setCusuario(String cusuario) {
        this.cusuario = cusuario;
    }

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "FH_INGRESO", nullable = false, length = 7)
    @NotNull
    public Date getFhingreso() {
        return this.fhingreso;
    }

    public void setFhingreso(Date fhingreso) {
        this.fhingreso = fhingreso;
    }

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "FH_MODIFICACION", nullable = false, length = 7)
    @NotNull
    public Date getFhmodificacion() {
        return this.fhmodificacion;
    }

    public void setFhmodificacion(Date fhmodificacion) {
        this.fhmodificacion = fhmodificacion;
    }

    @NotNull
    @Column(name = "B_ACTIVO", unique = false, nullable = false, insertable = true, updatable = true, precision = 1, scale = 0)
    public Integer getBactivo() {
        return bactivo;
    }

    public void setBactivo(Integer bactivo) {
        this.bactivo = bactivo;
    }

    @OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE}, fetch = FetchType.LAZY, mappedBy = "cgGrupoTrab")
    public Set<CgTecnico> getCgTecnicos() {
        return this.cgTecnicos;
    }

    public void setCgTecnicos(Set<CgTecnico> cgTecnicos) {
        this.cgTecnicos = cgTecnicos;
    }
}
